比較 : アルファブレンド vs 加算ブレンド
はじめに
アルファブレンド と加算ブレンドを比較してみました。
加算ブレンド
加算ブレンドは 2つの画像を足し合わせるブレンドです。
加算ブレンドの計算式
$ C = A + B
$ A : 元から描画されている色(背景)
$ B : 上から重ねる色(前景)
$ C : ブレンド結果の色
加算ブレンドの特徴
CはAより明るい。 ($ C \geqq A )
CはBより明るい。 ($ C \geqq B )
アルファブレンド
アルファブレンドは、アルファ値を使用して合成を行うブレンドです。
アルファブレンドの計算式
$ C = A \cdot (1 - \alpha) + B \cdot \alpha
$ A : 元から描画されている色(背景)
$ B : 上から重ねる色(前景)
$ C : ブレンド結果の色
$ \alpha : 前景Bの不透明度
アルファブレンドの特徴
CはAより暗くなることがある。 ( $ A > B \ かつ \ \alpha < 1 の場合、 C < A )
CはBより暗くなることがある。 ( $ B > A \ かつ \ \alpha > 0 の場合、 C < B )
アルファ値に応じた色の変化
$ \alpha = 1 の場合は$ C = B となってA は見えなくなる。
$ \alpha = 0 の場合は$ C = A となってB は見えなくなる。
豆知識 : 重み付き平均
合計が1となるような係数で平均をとること
例:
0.3 * X + 0.7 * Y
0.1 * X + 0.9 * Y
0.5 * X + 0.5 * Y
関連リンク
アルファブレンドと加算合成を共存させる小技
CEDEC2015「加算合成コストが0になる!?すぐに使えるP-MAPブレンドテクニック」発表スライド
KLabエンジニアが解説 RenderTextureの正しいアルファ値を導く方法